package br.com.beautycenter.bean;

import java.util.Date;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;


@Entity
@Table(name = "Funcionario")
public class Funcionario extends Pessoa {
    
    @Column(name="LOGIN")
    private String login;
    
    @Column(name="SENHA")
    private String senha;
    
    @Column(name="SALARIO")
    private double salario;
    
    @Column(name="DATA_ADMISSAO")
    @Temporal(TemporalType.DATE)
    private Date dtAdmissao;
    
    @Column(name="DATA_DEMISSAO")
    @Temporal(TemporalType.DATE)
    private Date dtDemissao;
    
    @Column(name="PERMISSAO")
    private int permissao;
    
    @Column(name="REGISTRO")
    private String registro;
    
    @OneToMany(mappedBy="funcionario", cascade=CascadeType.ALL, orphanRemoval=true, fetch=FetchType.LAZY)
    private List<PerfilAntropometrico> listaPerfisAntropometricos;
    
    @OneToMany(mappedBy="funcionario", cascade=CascadeType.ALL, orphanRemoval=true, fetch=FetchType.LAZY)
    private List<Sessao> listaSessoes;
    
    @OneToOne(fetch=FetchType.LAZY)
    @JoinColumn(name="ID_CARGO")
    private Cargo cargo;

    /**
     * @return the login
     */
    public String getLogin() {
        return login;
    }

    /**
     * @param login the login to set
     */
    public void setLogin(String login) {
        this.login = login;
    }

    /**
     * @return the senha
     */
    public String getSenha() {
        return senha;
    }

    /**
     * @param senha the senha to set
     */
    public void setSenha(String senha) {
        this.senha = senha;
    }

    public Cargo getCargo() {
        return cargo;
    }

    public void setCargo(Cargo cargo) {
        this.cargo = cargo;
    }

    /**
     * @return the salario
     */
    public double getSalario() {
        return salario;
    }

    /**
     * @param salario the salario to set
     */
    public void setSalario(double salario) {
        this.salario = salario;
    }

    /**
     * @return the dtAdmissao
     */
    public Date getDtAdmissao() {
        return dtAdmissao;
    }

    /**
     * @param dtAdmissao the dtAdmissao to set
     */
    public void setDtAdmissao(Date dtAdmissao) {
        this.dtAdmissao = dtAdmissao;
    }

    /**
     * @return the dtDemissao
     */
    public Date getDtDemissao() {
        return dtDemissao;
    }

    /**
     * @param dtDemissao the dtDemissao to set
     */
    public void setDtDemissao(Date dtDemissao) {
        this.dtDemissao = dtDemissao;
    }

    /**
     * @return the permissao
     */
    public int getPermissao() {
        return permissao;
    }

    /**
     * @param permissao the permissao to set
     */
    public void setPermissao(int permissao) {
        this.permissao = permissao;
    }

    public List<PerfilAntropometrico> getListaPerfisAntropometricos() {
        return listaPerfisAntropometricos;
    }

    public void setListaPerfisAntropometricos(List<PerfilAntropometrico> listaPerfisAntropometricos) {
        this.listaPerfisAntropometricos = listaPerfisAntropometricos;
    }

    public String getRegistro() {
        return registro;
    }

    public void setRegistro(String registro) {
        this.registro = registro;
    }

    public List<Sessao> getListaSessoes() {
        return listaSessoes;
    }

    public void setListaSessoes(List<Sessao> listaSessoes) {
        this.listaSessoes = listaSessoes;
    }
}
